// 路由守卫代码
import router from '@/router'  // 引入路由，该路由已经被创建好实例 引入配置全局路由守卫即可
import npropress from 'nprogress' // 引入进度条
import 'nprogress/nprogress.css' //进度条css样式
import store from '@/store' // 引入 state状态 


const whileList = ['/login','/404'] // 页面白名单 ，如果访问页面这些不需要要验证

/**
 * 前置全局路由守卫
 */

router.beforeEach(async(to,from,next)=>{
   // 跳转前开启进度条
   npropress.start()
   if(store.getters.token){ //如果token不为空
    if(to.path==='/login'){ //已经登录了 跳转去主页
      next('/') //分发跳转到主页 分发不执行后置路由
      npropress.done() // 关闭进度条
    }else{
      await  store.dispatch('user/getUserInfo')
      next() // 放行
    }
   }else{ // 没有token
     //白名单放行
     if(whileList.includes(to.path)){
      next()
     }else{
      // 去登录页登录
      next('/login') 
      npropress.done() // 关闭进度条
     }  
   }
})

/**
 * 后置处理器
 */

/** *
 * 后置守卫
 * **/
router.afterEach(() => {
  console.log('123')
  npropress.done()
})